﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DECOR.BL.BE;
using System.Data;
using System.Data.SqlClient;

namespace DECOR.DL.DALC.MSSQL
{
    public class SistemaSAPDALC : DALGC, ISistemaSAPDALC
    {
        #region ISistemaSAPDALC Members

        public List<DECOR.BL.BE.SistemaSAPBE> listar()
        {
            List<SistemaSAPBE> lstSistemas = new List<SistemaSAPBE>();
            try
            {
                DataTable dt = SqlHelper.ExecuteDataset(this.UsersConnStr, "usps_sistemasSAP").Tables[0];
                foreach (DataRow dr in dt.Rows)
                {
                    SistemaSAPBE objSistema = new SistemaSAPBE();
                    objSistema.Descripcion = dr["descripcion"].ToString();
                    objSistema.Idsistema = dr["idsistema"].ToString();
                    objSistema.Numero = Convert.ToInt32(dr["numero"]);
                    objSistema.Servidor = dr["servidor"].ToString();
                    objSistema.Sistema_id = Convert.ToInt32(dr["sistema_id"]);
                    objSistema.StringSAPRouter = dr["stringSAPRouter"].ToString();
                    lstSistemas.Add(objSistema);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lstSistemas;
        }

        public SistemaSAPBE leer(int pSistema_id)
        {
            SistemaSAPBE objSistema = null;
            try
            {
                SqlParameter p1 = new SqlParameter("@lpSistema_id", pSistema_id);
                DataTable dt = SqlHelper.ExecuteDataset(this.UsersConnStr, "usps_sistemasSAP", p1).Tables[0];
                if (dt.Rows.Count == 1)
                {
                    DataRow dr = dt.Rows[0];
                    objSistema = new SistemaSAPBE();
                    objSistema.Descripcion = dr["descripcion"].ToString();
                    objSistema.Idsistema = dr["idsistema"].ToString();
                    objSistema.Numero = Convert.ToInt32(dr["numero"]);
                    objSistema.Servidor = dr["servidor"].ToString();
                    objSistema.Sistema_id = Convert.ToInt32(dr["sistema_id"]);
                    objSistema.StringSAPRouter = dr["stringSAPRouter"].ToString();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return objSistema;
        }

        public void agregar(DECOR.BL.BE.SistemaSAPBE objSistema)
        {
            try
            {
                SqlParameter p1 = new SqlParameter("@lpDescripcion", objSistema.Descripcion);
                SqlParameter p2 = new SqlParameter("@lpServidor", objSistema.Servidor);
                SqlParameter p3 = new SqlParameter("@lpNumero", objSistema.Numero);
                SqlParameter p4 = new SqlParameter("@lpIdSistema", objSistema.Idsistema);
                SqlParameter p5 = new SqlParameter("@lpStringSAPRouter", objSistema.StringSAPRouter);
                int retval = SqlHelper.ExecuteNonQuery(this.UsersConnStr, "uspi_sistemasSAP", p1, p2, p3, p4, p5);
                
            }
            catch (Exception ex)
            {
                throw ex;
            }
            
        }

        public bool actualizar(SistemaSAPBE objSistema)
        {
            int retval = 0;
            try
            {
                SqlParameter p0 = new SqlParameter("@lpSistema_id", objSistema.Sistema_id);
                SqlParameter p1 = new SqlParameter("@lpDescripcion", objSistema.Descripcion);
                SqlParameter p2 = new SqlParameter("@lpServidor", objSistema.Servidor);
                SqlParameter p3 = new SqlParameter("@lpNumero", objSistema.Numero);
                SqlParameter p4 = new SqlParameter("@lpIdSistema", objSistema.Idsistema);
                SqlParameter p5 = new SqlParameter("@lpStringSAPRouter", objSistema.StringSAPRouter);
                retval = SqlHelper.ExecuteNonQuery(this.UsersConnStr, "uspu_sistemasSAP", p0, p1, p2, p3, p4, p5);

            }
            catch (Exception ex)
            {
                throw ex;
            }
            return (retval != 0 ? true : false);
        }

        public void eliminar(int pSistema_id)
        {
            try
            {
                SqlParameter p1 = new SqlParameter("@lpSistema_id", pSistema_id);
                int retval = SqlHelper.ExecuteNonQuery(this.UsersConnStr, "uspd_sistemasSAP", p1);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion
    }
}
